<? include_once('../../../config.php');include_once('../../../ldapConnect.php');

/**
 * Controlador para la búsqueda de canciones.
 * Recoge los parámetros desde la vista y hace uso del modelo para la búsqueda de canciones.
 * Obtiene del modelo los datos necesarios a mostrar en la interfaz.
 * 
 * @package html
 * 
 */
class UsersAdmin extends Controlador{
	
	/**
	 * Opciones recogidas para hacerlas visibles fuera de la clase
	 * @var array indexado por nombres de opción
	 */
	public $opt;
	
	/**
	 * Datos a mostrar en la vista, tales como los desplegables
	 * @var array indexado por nombre de la lista
	 */
	public $datos;
	
	public $ListaUsuarios;
	
	public $permisos=true;
	/**
	 * Constructor de la clase
	 * 
	 */
	public function __construct($opciones){FB::info($opciones);
		try{
			parent::__construct();

			$this->ListaUsuarios = new ListaUsuarios();
			$this->ListaUsuarios->buscar();
			
			if(!$_SESSION['Usuario']->es_Admin()){
				$this->permisos = false; 
				throw new Exception('No tiene suficientes permisos');
			}
			
			$this->obtener_Datos();
			
			$this->obtener_Opciones($opciones);
			
			if($this->opt['crear'])
				$this->crear();
			else if($this->opt['eliminar'])
				$this->eliminar();
			else if($this->opt['editar'])
				$this->editar();
	
			$this->ListaUsuarios->buscar();
			
		}catch(Exception $e){
			$this->opt['error'] = $e->getMessage();
		}
	}
	
	private function obtener_Datos(){
		
	}
	
	private function obtener_Opciones($opciones){
		@($opciones['crear'])?$this->opt['crear']=$opciones['crear']:null;
		@($opciones['eliminar'])?$this->opt['eliminar']=$opciones['eliminar']:null;
		@($opciones['editar'])?$this->opt['editar']=$opciones['editar']:null;
		
		@($opciones['id_usuario_actual'])?$this->opt['id_usuario_actual']=$opciones['id_usuario_actual']:null;
		@($opciones['id_usuario_new'])?$this->opt['id_usuario_new']=$opciones['id_usuario_new']:null;
		@($opciones['nombre'])?$this->opt['nombre']=$opciones['nombre']:null;
		@($opciones['password'])?$this->opt['password']=$opciones['password']:null;
		@($opciones['es_admin'])?$this->opt['es_admin']=true:$this->opt['es_admin']=false;
	}
	
	private function crear(){
		$Usuario = new Usuario();
		$this->opt['id_usuario'] = $this->opt['id_usuario_new'];
		$Usuario->crear($this->opt);
		$this->opt['msg_ok'] = "Usuario creado";
	}
	
	private function eliminar(){
		$Usuario = new Usuario($this->opt['id_usuario_actual']);
		$Usuario->del_Usuario();
		$this->opt['msg_ok'] = "Usuario borrado";
	}
	
	private function editar(){
		$Usuario = new Usuario($this->opt['id_usuario_actual']);
		
		if($this->opt['id_usuario_new'] != $Usuario->get_Id())
			$Usuario->set_Id($this->opt['id_usuario_new']);
		
		if($this->opt['nombre'] != $Usuario->get_Nombre())
			$Usuario->set_Nombre($this->opt['nombre']);
		
		if($this->opt['password'] != '')
			$Usuario->set_Password($this->opt['password']);
		
		$Usuario->set_Admin($this->opt['es_admin']);
			
		$this->opt['msg_ok'] = "Usuario editado";
	}
}

?>